RF point of sale and delivery method and system using communication with remote computer and having features to read a large number of RF tags

ABSTRACT

A method and system for providing point-of-sale and point-of-delivery and/or distribution of products in a restricted access unit near the customer. The method and system utilize products equipped with radio frequency tags and reduce the effects of energy sharing, shadowing, and nulls. In one embodiment, a plurality of RF tagged products are placed within a refrigerator, cabinet, or other micro-warehouse that has a door or opening that can detect access to the micro-warehouse. In one embodiment, one or more antennas are positioned within the door. Each antenna may have a transmission line of sight and be configured to emit a signal at predefined frequencies. Each antenna generates an electromagnetic field within the micro-warehouse. In one embodiment, the products are positioned in one or more bins, compartments, or similar devices located within the micro-warehouse such that at least two of the plurality of products are spaced a distance from each other to reduce energy sharing. The electromagnetic field is moved or altered within the micro-warehouse through the use of reflectors, devices that move the antennas, or other mechanisms.

RELATED APPLICATIONS

[0001] This application is a continuation-in-part of application Ser.No. 09/981,219 filed on Oct. 16, 2001. application Ser. No. 09/981,219,claims the benefit of Provisional Application No. 60/241,907, filed onOct. 20, 2000.

BACKGROUND OF THE INVENTION

[0002] The present invention relates to methods and systems fordistributing products to customers. More particularly, the inventionrelates to a system that tracks the use of products using radiofrequency (“RF”) tags and provides information to a central computer toenable automated restocking, inventory, tracking, or reordering of theproducts.

[0003] A variety of paper-based, electronic, and Internet orderingsystems are available and in use today. In addition, a number ofinventory tracking systems, including systems that use bar coding arealso in use. Beyond bar codes, it has been proposed that inventorytracking can be accomplished using RF tags. However, commerciallyacceptable RF systems, particularly systems that are able to trackhundreds of items in relatively small areas, have not yet beendeveloped. Furthermore, commercially acceptable integrated systems thatallow consumers to order and receive goods at a location proximate towhere the goods are used and that also automatically, and with limitedhuman intervention, track usage and initiate reordering are also notavailable.

SUMMARY OF THE INVENTION

[0004] Accordingly, there is a need to improve the distribution andtracking of goods so that consumers experience distribution of goods ata location proximate to where the consumer will use the goods withoutrequiring paper or computer ordering. There is also a need for adistribution system that is able to track numerous RF tagged itemspositioned in relatively small areas or volumes.

[0005] The invention provides a system and method where a user need onlyfind the product of interest and take that product. As compared to mostInternet-based systems and methods, the invention is “clickless.” Inother words, the invention requires little or no manual input fromusers. The invention provides a system for distributing a plurality ofproducts. Each of the products has a radio frequency (“RF”) tag. As usedherein, radio frequency means electromagnetic radiation that liesbetween audible and infrared radiation, including microwave radiation.Each tag is encoded with a unique identifying code. In one embodiment,the system is accessed by individuals possessing a radio frequency userbadge with an identifying code. Alternatively, the system could rely onmagnetic swipe cards, password systems, biometric devices (such as aretinal scanner, thumb or finger print reader, voice identificationunit, or the like), bar code cards, or other systems for limiting accessto authorized individuals.

[0006] The system includes one or more cabinets, refrigerators, similarstorage units, (generically referred to as “micro-warehouses”) or evensecured rooms that are stocked with the RF tagged products and accessedby individuals through one of the mechanisms described above. In oneembodiment, each micro-warehouse defines an RF cavity, has a door thatmay be equipped with a lock (such as an electric-actuated lock), anantenna or antenna array mounted on or in the micro-warehouse, a clientcontroller (or similar programmable device) coupled to the lock and theantenna, a badge or key reader, and an output or user-feedback devicesuch as a light, audio device, or display. Using a signal from the badgeor key reader, the client controller checks the identity of theindividual accessing the micro-warehouse, such as by reading the code ofthe user badge. The user feedback device is then activated to indicatewhether the individual attempting to access the micro-warehouse isauthorized to access the unit. If the code or other identifier matchesstored records of authorized users, the client controller opens the doorand the user may remove desired products from the micro-warehouse. Oncethe user closes the door (and in some embodiments, the door is locked),the client controller performs a scan of the products remaining in themicro-warehouse to determine the identity of each of the products. Theclient controller then generates a message including the identity ofeach of the products or other message related to the products taken.That message or a second message based on the first is sent to a server.The server tracks product and user information automatically, that is,without relying on user input. The server also generates orders forproducts taken from the micro-warehouse by the user. The server can beprogrammed to automatically place those orders. This eliminates the needfor the customer to re-order consumed items.

[0007] Alternatively, the system can operate like a vending machine, butwith the product exit chamber, the area behind a door through which auser reaches for the product after it has fallen from its storage area,arranged as the RF cavity. Tags on products that fall into the pick uparea can be read before or as the user picks them up.

[0008] Each user badge may also include billing information andform-of-payment information in addition to having identificationinformation. As should be apparent, billing information could take theform of the entity to be billed, which may or may not be the individualassociated with the tag. Form-of-payment information may include accountinformation, credit card information, or the like.

[0009] In one embodiment, an array of antennas is positioned within thedoor of each MW. Each antenna may have a transmission line of sight andbe configured to emit a signal at one or more predefined frequencies.The antenna array generates an electromagnetic field within the MW. Theproducts are positioned in one or more bins, compartments, or similardevices located within the MW. Preferably, the electromagnetic field isaltered within the cavity defined by the micro-warehouse through the useof reflectors or devices that move the antennas within the array. In oneembodiment, material that is reflective to RF signals is placed near thedoor/cabinet gap to prevent the escape of RF energy. This helps reduceaccidental reading of tags outside the MW but near the gap, and exposureof people and things outside the MW to RF radiation.

[0010] In one preferred embodiment, tagged products are positioned suchthat each tag on each product is organized in an orderly fashion suchthat 1) the likelihood of a tag being shadowed by an RF absorbingsubstance within the cavity is reduced, 2) the likelihood of one tagsharing energy with another due to too close proximity is reduced, and3) the orientation of the tags located in the fringe RF areas, and inthe nulls of the cavity, increases the RF cross-section and energyabsorbency of each such tag. Some of the above three desirablecharacteristics may be achieved by placing the tags such that they aregenerally orthogonal to the transmission line of sight (as opposed tobeing positioned generally parallel) of at least one antenna within thearray. In addition, at least two of the plurality of products may bespaced a distance from each other such that energy sharing is reduced.(“Energy sharing” is a phenomenon where one or more tags positioned inclose proximity share energy from an electromagnetic wave travelingthrough the volume such that one or more of the tags fails to receivesufficient energy to be energized and, therefore, fail to emit anidentifying signal.) In one form of the invention, the distance is basedon the wavelength of the signal(s) from the antenna array and is afraction thereof. In one preferred embodiment, the distance is about 3to about 6 cm.

[0011] It is also preferable that each tag have the ability to cloakitself for a predetermined amount of time. The amount of time may be ina range that is based on the maximum number of tags in themicro-warehouse and the temperature of the tags. In one embodiment, thistime is about 1-5 seconds when the tagged products are stored at atemperature of −20° C. However, the amount of time is variable anddepends on the temperature inside the MW, the tag type, the tagtransmission algorithm, and the existence or not of a wake or decloakfunction. The cloaking time is selected to allow de-cloaking such thatanother scan can be done within an algorithmically acceptable timeperiod.

[0012] A controller (often referred to as a “client controller”) iscoupled to the antenna array and is operable to control the antennaarray such that a series of scans or runs are performed. In a preferredembodiment, the controller is operable to perform a baseline run, aninventory run, and a background run. The controller generates messagesindicative of changes in the presence of tagged items within themicro-warehouse and stores those messages in a queue or buffer. Thecontroller also calculates an integrity value, compares that value to apredetermined integrity value, and reports the comparison in themessage.

[0013] As is apparent from the above, it is an advantage of the presentinvention to provide a method and system of inventorying anddistributing products. Other features and advantages of the presentinvention will become apparent by consideration of the detaileddescription and accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

[0014] In the drawings:

[0015]FIG. 1 is a schematic illustration of a system embodying theinvention.

[0016]FIG. 2 is a schematic diagram of servers and a client device usedin the system shown in FIG. 1.

[0017]FIG. 3 is a schematic illustration of fulfillment, inventory, andother information flow among components in the system shown in FIG. 1.

[0018]FIG. 4 is a schematic illustration of a system embodying theinvention.

[0019]FIG. 5 is a schematic illustration of information flow amongcomponents of the system shown in FIG. 4.

[0020]FIG. 6 is a perspective view of an exemplary micro-warehouse inthe form of a freezer.

[0021]FIG. 7 is a cross-sectional view of the door of themicro-warehouse shown in FIG. 6.

[0022]FIG. 8 is a cross-sectional view of a door of a micro-warehouseconfigured according to another embodiment of the invention.

[0023]FIG. 9 is a perspective, partially phantom view of a chest capableof holding multiple drawers suitable for use in the micro-warehouse ofFIG. 6 and a drawer.

[0024]FIG. 10 is a schematic diagram of a control system used in amicro-warehouse.

[0025]FIG. 11 is a diagram of an exemplary embodiment of the controlsystem shown in FIG. 10.

[0026]FIG. 12 is a schematic diagram of electromagnetic fields within amicro-warehouse.

[0027]FIG. 13 is a perspective view of an exemplary packaged productillustrating possible locations for RF tags on the product.

[0028]FIG. 14 is a flowchart of software used in one embodiment of theinvention.

[0029]FIG. 15 is a flowchart of software of one embodiment of theinvention.

[0030]FIG. 16 is a flowchart of software of one embodiment of theinvention.

[0031]FIG. 17 is a flowchart of software of one embodiment of theinvention.

[0032]FIG. 18 is a flowchart of software of one embodiment of theinvention.

[0033]FIG. 19 is a flowchart of software of one embodiment of theinvention.

[0034]FIG. 20 is a flowchart of software of one embodiment of theinvention.

[0035]FIG. 21 is a graph of product tag read times versus the number oftagged products in a micro-warehouse.

[0036]FIG. 22 is a flowchart of software of one embodiment of theinvention.

[0037]FIG. 23 is a flowchart of software of one embodiment of theinvention.

[0038]FIG. 24 is a flowchart of software of one embodiment of theinvention.

DETAILED DESCRIPTION

[0039] Before embodiments of the invention are explained in detail, itis to be understood that the invention is not limited in its applicationto the details of the construction and the arrangements of thecomponents set forth in the following description or illustrated in thedrawings. The invention is capable of still other embodiments and ofbeing practiced or being carried out in various ways. Also, it is to beunderstood that the phraseology and terminology used herein is for thepurpose of description and should not be regarded as limiting.

[0040]FIG. 1 illustrates an exemplary system 25 embodying the invention.The system 25 includes two servers (maintenance and commerce) 26 and 27that create and maintain user lists, perform inventory, account,ordering functions, and monitoring functions, such as micro-warehousestatus, monitoring temperature, and other faults. Servers 26 and 27 maycommunicate with a client (and, more particularly, a computer or similardevice such as the controller in a micro-warehouse (“MW”) discussedbelow) using standard protocols such as TCP/IP, UDP, or other protocolsover a network 28. The network 28 may be the Internet, a telephonenetwork, a wireless network, power line carrier (“PLC”) network, orother type of network and combinations thereof. In the embodiment shown,servers 26 and 27 include standard hardware and operating systemsoftware (not shown). Running on top of the hardware and operatingsystem software is a MW enterprise application 29. The MW enterpriseapplication 29 accesses a profile database 30 that includes aregistration module 31, an order history module 32, an account set-upmodule 33, and a stock request module 34. Each of the modules 31-34 ismaintained for each client coupled to the server 27. The modules may beconfigured with web content designed to be accessible by a systemadministrator using protocols for the World Wide Web section of theInternet.

[0041] As best seen by reference to FIG. 2, the MW enterpriseapplication 29 performs numerous functions. Broadly, the MW enterpriseapplication 29 controls the administration of the radio frequencyidentification (“RFID”) badges or other user badges or keys (discussedbelow), manages communication sessions with clients connected to theserver 27, maintains an inventory of products for each client connectedto the servers 26 and 27, checks inventory of MWs, and in someembodiments, other MWs local to the specific MW of interest, beforeordering a product, manages security of communications, provides systemadministration functionality, and monitors and maintains the health ofclients connected to the servers.

[0042] The registration module 31 (FIG. 1) provides part of theinventory functionality of the server 27 by providing access toinformation regarding the location of clients connected to the server27. In one embodiment of the invention, the clients take the form ofMWs. The registration module also provides access to informationregarding sales persons assigned to a particular MW and theidentification, location, and similar information for each MW. Theregistration module 31 may access a MW database 34A.

[0043] The order history module 32 provides a history of orders for eachMW 36 and product preferences for each MW 36. The account set-up moduleprovides administrative screens for payment authorization, userinformation, and similar information. The stock request module 34controls inventory replenishment based on usage and on specific customerrequests and similar information.

[0044] The server 27 also accesses a commerce engine 35 that usesinformation received from a client (or MW) to generate orders that aredelivered to a fulfillment infrastructure (not shown). The fulfillmentinfrastructure produces products to be distributed using the system andmethod of the invention. The information may be used by a manufacturinginfrastructure and marketing, customer relation management (“CRM”),billing, and other systems and functions (all not shown). For example,the invention may be used in the distribution of life science researchproducts such as enzymes, assays, cloning vectors, competent cells, andthe like. (Of course, a wide variety of non-biological products could bedistributed using the invention.) The information provided by the server27 is used in the manufacturing infrastructure to ensure properproduction of products according to the demand for such products. Asnoted above, the server 27 may be coupled to a plurality of clients orMWs. An exemplary client in the form of the MW 36 is shown in FIG. 1.While only one client is shown, the number of clients connected to theserver 27 is limited only by the server's internal capacity and thecapacity of the network 28.

[0045] The MW 36 may take the form of a refrigerated cabinet, a freezer,or other storage container. A secured storeroom, similar location, orother defined area could also be outfitted with a client controller andother components, as described herein, and be used to store products. Inthe embodiment shown, the MW 36 includes a door 37. While it ispreferred, it is not required that the MW 36 have a door. Devices (suchas light curtains) that sense when access to the interior of the MW isbeing attempted may also be used. As noted, in another embodiment, thesystem may utilize a defined area to enclose the tagged products ratherthan a cabinet. The defined area uses an access point (not shown) toserve as its entryway. The products within the area are fitted withidentification tags and specifically positioned in the area to be readby a RF inventory interrogator (such as a controller 45 and antennaarray (discussed below)). Product scans begin when a sensor (such as,e.g., a proximity sensor) senses a user passing through the accesspoint. The access point is controlled by a processor, such as the clientcontroller 45, and is able to control doors, portals, alarms, or othermechanisms to restrict access to the area and products.

[0046] As shown, the MW 36 may also include an electric actuated lock39, a proximity sensor 40, and a user feedback or, more generally, anoutput device that may take the form of an audio device or light 41.Other output devices such as a voice synthesis device, a display screen,and the like may also be used. The MW 36 is configured with an antennaarray 43. The antenna array 43 is coupled to the client controller 45.In one embodiment, the invention may include an antenna array with sixvertically or circularly polarized antennas. The antenna array 43 is aRF receive and transmit system that communicates with transponderdevices or tags (discussed in greater detail below). In one embodiment,each tag is a passive tag and powered by energy from the antenna array43.

[0047] The MW 36 may include a specialized badge or card reader 47(generically a “key reader”) in the form of a magnetic card swipedevice, an antenna, a fingerprint reader, or similar device. The reader47 is coupled to the client controller 45 via a communication link 49.The MW 36 may also include internal and ambient temperature sensors 55and 56. The temperature sensors 55 and 56 are coupled to the clientcontroller 45 to provide temperature information to the clientcontroller. Additional information may be provided to the clientcontroller through optional input devices. The location of the MW 36 maybe monitored by a global positioning system (GPS) device (not shown)plus inertial frame recognition for fine measurement and forinterpolation between GPS satellite acquisitions. Motion and shock oftransport may be monitored with an accelerometer (not shown). Thevoltage, current, and other characteristics of electrical supply linesmay be monitored and provided to the client controller 45 by apower-line-monitoring device (also not shown). The on/off duty cycle ofthe current supplied to the refrigeration compressor can be used, withthe internal and ambient temperatures, to indicate the relative healthof the compressor. Additional input devices, such as cameras,microphones, sensors, etc., could be coupled to the client controller tomonitor environmental and other conditions.

[0048] A smartcard reader (not shown) may also be coupled to thecontroller 45. A smartcard, in addition to identifying the customer foradmittance purposes, can contain a preloaded monetary equivalent thatcan be debited at the time of door closure for any products taken duringthe door open session.

[0049] The client controller 45 includes software to carry out severalfunctions that are discussed in greater detail below. If desired, theclient controller 45 may be a consumer grade device, such as a PalmPilot® personal digital assistant, Packet PC device, or a personalcomputer, modified according to the teachings herein. Depending on thehardware used, the client controller 45 may be configured with agraphical user interface (“GUI”) to facilitate interaction between thesystem 25 and its users.

[0050] The client controller 45 includes software (discussed below)which may interrogate the RF tagged products within the MW 36. Theinterrogation process involves sending signals from antennas andreceiving signals from passive, transponder RFID tags. Preferably,interrogation is accomplished in such a way as to eliminate or reduceinterference problems that are typically associated with reading RFsignals from multiple devices. The system 25 could also be implementedwith active tags (not shown), although presently available active tagsneed to be improved so as to perform in the temperatures that theembodiments of a system for distribution of life science researchproducts are expected to operate within and at roughly the same cost andpower consumption.

[0051] In one embodiment of the system 25, one or more RFID accessbadges 75 (FIGS. 1 and 3) are be generated. Preferably, the RFID badges75, as well as the other RFID tags (discussed below) are passivetransponder tags. Preferably, the RFID badges 75 are encoded with uniqueidentifying information from the account set-up module 33 based ondigital signatures. In addition, it is preferred that the digitalsignatures encoded on the RFID badges 75 used by restocking servicesprovide one-time access to a specific MW, and thereafter expire, and bedisposable. One-time access badges may be set to expire after a certainamount of time or at a set time. However, the badges 75 may also take aform that can be enabled again for one-time access at the nextrestocking event. The RFID access badges may be fixed on a carton ofproducts 80 (FIG. 3). Alternatively, they may be delivered separately tothe facility where the MW of interest is located. Alternatively, theymay be the badges of field personnel or designated on-site authorizedsupport personnel.

[0052] As best seen by reference to FIG. 3, the carton of products 80includes a plurality of individual products 90 each with anidentification tag 95. Each identification tag 95 may be structurallythe same as an RFID badge 75, but coded with different information andconfigured such that the digital signature on tag 95 will generally notexpire. In one form of the invention, each tag 95 has a 16-bit groupidentification code and a 32-bit item identification code. The 16-bitgroup identification code may be programmed with information such as themanufacturer or distribution channel of the product. The latter allowsrouting of the transaction involving a product to the proper enterprisesystem. The 32-bit item identification code is used to providedescriptive information regarding the product such as serial number,product type, date, lot number, and similar information, or a unique ID,which corresponds to such information in a database on a server.

[0053] Once all the products 90 have been fitted with unique RFID tags95, the products may be shipped in the carton 80 to a designated MW suchas the MW 36. The carton 80 is packed according to a fulfillment requestthat is based on either an initial order from a customer (not shown) orMW specific business rules followed by the server 27. The carton 80 maybe fitted with RFID access badge 75 or the RFID access badge 75 may beshipped separately to the location of the MW of interest. If fitted withan RFID access badge 75, the carton 80 may be shipped by a deliveryservice contracted to deliver the package to the MW 36. Once the cartonis delivered, the recipient or user may use the RFID access badge 75 toopen the door 37 of the MW 36 by passing RFID access badge 75 in frontof the reader 47. Client controller 45 reads the digital signature ofthe RFID access badge 75 and confirms reading of the code by actuating auser feedback device such as a voice synthesis module or the light 41.Since, the server 27 provides a locally based user list to the clientcontroller 45, the client controller 45 oversees authentication of thedigital code read from the RFID access badge 75. Client controller 45checks the authenticity of the read code by matching the code to theuser list. Client controller 45 may then optionally read the temperaturesensors 55 and 56 and transmit temperature information to the server 26.If used, the temperature sensors 55 and 56 are preferably read on aperiodic basis, with the temperature information being transmitted tothe server 26 each time the temperature is read. Client controller 45can also be programmed to transmit temperature data if the internaltemperature falls beneath or above a predetermined range. In manyinstances, it will be important to ensure that the temperature of the MWis within an appropriate range to store the products 90. If thetemperature of the MW 36 is within an appropriate range, and the user isauthenticated, the client controller 45 then actuates the lock 39 toopen the door 37 (of course, the MW need not be equipped with the lock39). If the temperature of the MW 36 is not within an appropriate range,then access to the MW 36 may be prevented by maintaining the lock 39 ina closed state. This allows a refrigeration unit (not shown) associatedwith the MW 36 to cool the interior space of the MW 36 to a desiredtemperature before ambient air is allowed into the MW 36 by opening ofthe door. This also provides for product 90 integrity during a powerfailure.

[0054] Once the door 37 opens (which may be sensed by the proximitysensor 40), or access to the interior of the MW 36 is gained, acommunication session between the MW 36 and server 27, which may besegmented based on appropriate events to optimize user response andnetwork usage, begins. Having full access to the MW 36, the employee ofa carrier or logistic service (such as UPS, Airborne Express, etc.) whodelivered the carton 80 now proceeds to place the individual items 90into the MW 36. Once the carton of products 80 is empty, the deliveryemployee then closes the door 37, and removes the carton, if necessary.The proximity sensor 40 senses the closing of the door 37. The clientcontroller 45 senses the status of the sensor. Preferably, the lock 39(if used) resets automatically after being unlocked for a predeterminedtime, for example five (5) seconds. The user has that predetermined timeto open the door. Power to the antenna array 43 is disabled once thedoor 37 opens. When the door 37 closes or access is prohibited, a scanof the products 90 placed within the MW 36 is performed. Upon completingthe scan, the client controller 45 sends a change-in-inventory message100 to the commerce server 27. To ensure integrity of the inventorychange billed to the customer, the client controller 45 employs anintegrity algorithm when the MW 36 is scanned. The algorithm is based onstatistical information, historical information, and other factorsincluding RF algorithms and delay data.

[0055] As will be explained further below, it was found, for oneembodiment, that to accurately determine the number of tagged items in aMW 36 (i.e., to provide acceptable integrity in the system), it is bestto scan the tagged items multiple times. Further, in the embodimentwhere the MW takes the form of a freezer, refrigerator, or othercabinet, achieving integrity generally requires choosing a superset oftagged items from all scans as well as noting the set that representsthe majority set (over 50%) of the scans, the number of scans innon-cloaked mode (which may be an empirical number, found to be ten forthe MW 36 illustrated in FIG. 6), and the number of scans in the cloakedmode (which for the same embodiment was empirically found to be three).To achieve greater system integrity (which in one embodiment is no morethan one error in five-thousand tagged items), information from scans orinterrogations is held on the server 27 for a predetermined amount oftime (e.g., twenty-four hours). During this time, and while the subjectMW is not being accessed by a customer, the controller 45 performsbackground inventory checks. The background inventory checks are used toincrease the inventory sample population data set to statisticallysignificant levels whose cross section corresponds to the 1 in 5000level. Preferably, any anomalies found are sent to the server 27 wherethey are used to modify information held on the server 27.

[0056] The MW 36 may be accessed by a customer at the MW location usinga separate RFID badge 75 (or other identifying badge or key) shippeddirectly to that customer. Alternatively, and as noted above, the reader47 may be configured as a smartcard, a magnetic card swipe device, abarcode device, a fingerprint reader, or some similar device thatcontrols access to the MW 36. Regardless of its exact configuration, thereader preferably reads the badge or key, compares the ID informationcontained in the key with the list of authorized users stored in theclient controller 45, and if the user's key matches one of thoseauthorized, the client controller 45 acknowledges authorization bygenerating an output such as by lighting the light 41. The list ofauthorized users is sent to the client controller 45 and updated asneeded by the server 26. The server 26 may be configured with thecapability to authenticate a user's key as well. Once authenticationtakes place, the client controller 45 then opens the door 37 allowingthe customer or user to access the interior of the MW 36. The customerthen removes one or more products 90 from the interior of the MW 36 andthen closes the door 37. Once the door is closed, client controller 45scans the products 90 in the MW 36 and sends an inventory messageidentifying the missing or added products 90 to the server 27. Theserver 27 compares the previous inventory prior to opening to thecurrent inventory. From the comparison, the server 27 determines themissing or added items in the MW 36. The inventory information is thencommunicated to the commerce engine 35, which preferably stores theinformation for future use for both marketing and inventory functions.Receipts for the used products can then be sent via electronic mail orprinted and shipped via regular mail to the customer at the MW location.Invoicing can also occur using other electronic and non-electroniccommunication mechanisms.

[0057] The inventory message can be used for other purposes as well. Forexample, the inventory message includes information regarding individualproducts 90. Therefore, the amount of time a particular product 90spends in any MW 36 may be recorded by the server, as well as theproduct's temperature history. If time is recorded, it is also possibleto compare the amount of time any particular product 90 spends in a MW36 to a shelf life or acceptable usable life for that product.Temperature history can also be stored and compared to other data. Ifthe shelf life is passed, then an expiration message, such as a picklist, may be generated and sent to the MW 36 or an electronic mailaddress of a user of the system to inform the user that certain productsshould be removed from the MW 36 and not used. Temperature history andtime sent by the MW 36 to the server 27 may also be used to calculate a“storage-degree-day” value to for each product 90 in the MW 36. Thisvalue may, in turn, be used to make an activity projection and expirythreshold for the subject products 90. The administrator of the MW 36may then use this information to remove expired products from the MW 36.

[0058] In yet another implementation, the inventory message may be usedto determine the type of products 90 in the MW 36. If any of theproducts present within the MW 36 are subject to a recall by themanufacturer, the MW 36 may be placed in a “lock down” condition,whereby access to the MW 36 is denied until an administrator or otherauthorized individual removes the recalled product or otherwiseaddresses the situation. In addition to its use to protect against theuse of recalled products, the lock down feature is useful forcontrolling the distribution of potentially spoiled or degraded productsand other products where exacting product specifications and qualitycontrols are desired, such as pharmaceutical products and controlledsubstances.

[0059]FIGS. 4 and 5 illustrate additional features of the system 25. Asshown in FIG. 4, the system 25 may be implemented such that the MW 36communicates with a telephone system or similar access point 105 througha wireless communication link 107. The access point 105 may be connectedto a network service provider such as an Internet service provider(“ISP”) 110. The service provider 110 may provide a connection to thenetwork 28 (which is shown as the Internet in FIG. 4). FIG. 5 providesadditional details concerning the exemplary fulfillment infrastructurenoted above. Servers 26 and 27 may be configured in a cluster 112 with amiddleware server 114, which in one form of the invention takes the formof an extensible markup language (“XML”) middleware server 114. Thecluster 112 is protected by a firewall 116 and communicates with anenterprise computer 118 (such as a mainframe) which may run variousenterprise resource planning (“ERP”), CRM, manufacturing, and otherbusiness process programs. The enterprise computer 118 communicates withan enterprise database 120, which is also accessible by the server 27.It should be understood that the cluster 112 may consist of any numberof hardware or software servers and that the exact configuration may bemodified depending on how the invention is implemented. In general, itis possible to combine functionality on one server or to separate outoperations and functionality on multiple servers beyond those shown anddescribed herein.

[0060] In the embodiment shown, information received from tagged items90 within each MW 36 is sent to the web cluster 112, particularly theserver 27, in an XML format. The XML formatted messages are transferredfrom the server 27 to the middleware server 114, which hosts XMLmiddleware 120 (FIG. 5) such as Biz Talk® software. The XML software 120communicates with other software/systems such as ERP system 124, webordering system 126, an RFID badge, key, or passkey administrationsystem 128, and a MW administration system 130. The ERP system 124 maybe configured to assign RF tags 95 to selected products or lots ofproducts; assign identities to each MW 36; handle inventory planning;handle re-supplying of MWs; and handle sales orders. The web orderingsystem 126 may be configured to process customer order inquiries;inventory inquiries; passkey updates; and purchase order updates.

[0061]FIG. 6 illustrates an exemplary micro-warehouse in the form of afreezer 230. In the embodiment of the invention described andillustrated, components are tuned to work efficiently in amicro-warehouse having a volume of about five cubic feet (about 142liters) and that can hold hundreds of RF tagged items. However, otherembodiments are possible, including, for example, a 21 cu. ft. (about425 liters) freezer and a 15 cu. ft. (about 595 liters) room temperaturehospital supply cabinet. The freezer 230 includes a housing 232 with anopening 234 and an interior 235. A door 236 is attached to the housing232 such that the door 236 can be closed to occlude the opening 234 andopened to provide access to the interior 235 of the freezer 232. Anumber of shelves 238 are positioned within the interior 235. Each shelf238 may hold one or more cabinets 240. Each cabinet 240 may include oneor more drawers 242. Each drawer 242 may hold multiple packaged products(discussed below). Products, particularly larger products, may also bepositioned within a bin 244. The package dimensions of larger productsoften create a desirable separation of tags (which, as discussed below,reduces energy sharing).

[0062] The freezer 232 can be constructed using a standard freezermodified and equipped as described herein. For example, the door 236 maybe constructed from a door provided with a standard freezer. Insulationin the standard door is removed or otherwise formed or positioned andvarious components needed to scan RF tags on products stored withinfreezer 230 (e.g., in the drawers 242 in the cabinets 240) are added.The freezer 230 may be equipped with a strip (not shown) of RFreflective material positioned around the perimeter of opening 234 toprevent or reduce the escape or leakage of RF energy.

[0063] As best seen by reference to FIGS. 6 and 7, the door 236 includesa front panel 250, which in one embodiment has curved sides such that acavity or depression 252 is formed by the panel 250. Insulation 254 ispositioned within the depression 252. Near the center of the panel 250the insulation 254 is hollowed out or otherwise formed or positionedsuch that a controller 256 (discussed further below) may be positionedwithin the door 236. A second portion of the insulation 254, near onecorner of the panel 250, is also hollowed out or otherwise formed orpositioned such that a badge or key reader 258 or similar device may bepositioned within the door 236. The insulation 254, the controller 256,and the key reader 258 are maintained within the depression 252 by amounting plate 260. Preferably, the mounting plate 260 is made frommetal. The mounting plate 260 supports an array of antennas 261. In onepreferred embodiment, the array of antennas 261 includes antenna 262,antenna 263, antenna 264, antenna 265, antenna 266, and antenna 267(FIG. 6). Although six antennas are shown, the number and positioning ofthe antennas within the door 236 is dependent on a variety of factors,such as antenna gain, beam shape and directionality, transmitted power,RF cavity geometry, reactivity and reflectivity, convenience oflocation, distance from transmitter, cost, antenna-antenna interference,effective use of antenna beam volume, prevention of RF energy escapefrom cavity, antenna size and shape, antenna-tag orientation, antennamultiplexing pattern, and other factors. Thus, the invention is notlimited to the array shown and other arrays could be used and may bemore suitable for different micro-warehouses. The array of antennas 261can also either singly, or in some combination, be rotated through asmall arc by using one or more actuators or similar devices to shift thebeam interference pattern or electromagnetic field in the RF cavity, forexample, to mitigate any RF nulls or shadows. The antennas may also beactivated at different times and patterns to shift the beam interferencepattern or alter the electromagnetic field within the RF cavity.

[0064] The presence of shelves 238, cabinets 240, drawers 242, products,and tags may affect the electromagnetic field within the freezer 230.While most of the items just mentioned are preferably made fromsubstantially RF transparent material, they nevertheless can block ordiminish the strength of RF signals. Furthermore, the tags on theproducts and the products themselves are not made from RF transparentmaterial and they may block or otherwise interfere with other tagsreceiving RF signals. These phenomena can be variously known asshadowing. The effects of shadowing may be reduced by positioning taggedproducts in the cabinets 240 and drawers 242, bin 244, or in othercompartments, receptacles, or devices that can help provide separation.

[0065] The waves from each antenna and reflections off of the interiorsurfaces of the freezer 230 interact to create an electromagnetic fieldwith many nulls (areas where waves combine to cancel each other suchthat there is insufficient energy to energize passive RF tags). Theeffects of nulls may be reduced by moving the field within the interiorof the freezer 230 at a speed and with a pattern such that any nullsgenerated change position over time. Alternatively, this can also bedone by changing the geometry of one or more reflective surfaces in theRF cavity, such as with an acute sawtooth pattern, or by adjusting thepower to minimize internal reflected power, or by selection or variationof antenna power and frequency. In some cases, more than one of thesealternatives is used. Preferably, reflectors such as the reflector 670(FIG. 12) are used. (As shown, the reflector 670 is positioned at therear of the freezer 230, but other placements within the freezer arealso possible.) However, actuators, pivots, and other devices could beused to move the antennas 262-267 to generate many differentinterference patterns and alter the position of nulls in the interior235 such that no tag is positioned at or within a null for anysignificant length of time. For example, as shown in FIG. 8 the antennas262-267 could be mounted on pivots 269 and coupled to small,electrically or pneumatically powered actuators 270 located within thecavity 252 and mounted on the mounting plate 260. Antennas suitable foruse in at least some embodiments of the invention include Huber & Suhnermodel 2400/70/9/0/CP antennas, which are available from commercialsources. Preferably, the antennas 262-267 are protected by aRF-transparent radome 272. The radome 272 also helps position theantennas 262-267 at desired locations along the door 236. As will bediscussed in greater detail below, the controller 256 sends and receivessignals from the antennas 262-267. Signals transmitted by the antennas262-267 are used to excite passive RF transponder tags 270 (FIG. 13)attached to products 272 (FIG. 13) stored within the freezer 230 orapplicable MW. In preferred embodiments, the products are in the drawers242 of the cabinets 240 or bins (when larger products are stored).Signals generated by the transponder tags 270 are received by theantennas 262-267 and processed by the controller 256.

[0066] Before discussing embodiments of the invention in greater detail,some premises of their design, particularly the designs shown in FIG. 6and higher, need to be addressed. First, for those embodimentsimplemented in a micro-warehouse, RF cavity considerations areimportant. Second, the particular embodiments described are designed tobe compliant with Part 15 of the regulations issued by the United StatesFederal Communications Commission (“FCC”). Part 15 of the FCCregulations places limitations on antenna powers and frequencies thatmay be used in systems, such as the current one, where RF tags arescanned. In order to meet the requirements of Part 15 as well as therequirements of scanning numerous tags within a relatively small volume(or RF cavity), an antenna frequency in the GHz range (or microwaverange) was chosen. In particular, the inventors discovered that afrequency of about 2.45 GHz was best suited for the applicationsdiscussed herein. Nevertheless, alternative embodiments of the inventioncould be configured to operate at different power ratings andfrequencies (for example, MHz embodiments), as would be apparent to oneof ordinary skill in the art after reviewing the designs and teachingsset forth herein.

[0067]FIG. 9 illustrates an exemplary cabinet 240 used in the freezer230. The cabinet 240 includes a top 280, a bottom 282, a rear 284, andsides 286 and 288. In the embodiment shown, the cabinet 240 includesfour bays 290. Each bay 290 is configured to accept a drawer 242. Eachdrawer includes a pull knob 300 or similar device and a plurality ofangled separators 302. The angled separators 302 define a plurality ofslots 304 in which packaged products 270 with RF transponder tags 272may be positioned. The separators 302 are configured to positionproducts within the interior 235 of the freezer 230 such that tags 272on the products 270 contained within any one drawer 242 are maintainedat a minimum separation distance and, in one embodiment, in a generallyorthogonal position with respect to the transmission line of sight ofthe antennas located most proximate to the subject drawer 242.Orthogonal positioning is not necessary, however. The purposes ofspacing tagged products include reducing energy sharing among andbetween proximate tags such that each tag on each product within thefreezer 230 is energized at its requisite level, which for oneembodiment is a minimum of about 0.23 mW/cm². In the embodiment shown,the distance between the separators 302 may be based upon the frequencyof the signals from the antennas 262-267. In particular, spacingcorresponding to a fraction of, and in one preferred embodiment,approximately ½ of the wavelength of the 2.45 GHz excitation signal(approximately 3 to 6 cm) has been found to reduce energy sharing amongthe tags. Preferably, the smallest possible spacing is used and shorterseparation distances than those specified have been found to be adequatein some circumstances, particularly where other parameters such asfrequency, antenna power, and others are different from the particularexamples provided herein.

[0068] Instead of drawers and cabinets, bins or similar items withseparators could be placed directly on the shelves or surfaces withinthe freezer 230. In addition, in some applications, the impact of energysharing may be reduced through the selection of frequency, RF power, andtransponder design (mainly size) such that products can be placed in arandom or haphazard manner within the freezer 230.

[0069]FIG. 10 schematically illustrates one exemplary embodiment of thearchitecture of the controller 256. The controller 256 includes acentral processing unit or processor 400 that receives time signals(e.g., time of day) from a real-time clock 402. In one embodiment, thereal-time clock is synchronized periodically to a standard timereference, such as the atomic standard clock at the National Instituteof Standards (“NIST”), connected to the real time clock 402 through thenetwork 28. Synchronization of the real-time clock 402 helps ensureaccuracy in time stamping the transactions (e.g., taking and placingtagged products in the freezer 230) controlled by the controller 256.The processor 400 receives inputs from an optional biometric device 404,a badge or key reader or similar device 408, and the antennas 262-267.The antennas 262-267 receive information from the tagged products 270within the freezer 230. The tags 272 on the products 270 produceidentifying signals in response to being excited by signals transmittedfrom the antennas 262-267. The processor 400 sends signals to theantennas 262-267 through a controller 412. The controller 412 provides acommand signal to a multiplexer 413, which addresses each antenna262-267. One controller suitable for use as the controller 412 is an SCS511 scanner with 100 398 multiplexer available from Single Chip Systems(“SCS”) Corporation, San Diego, Calif. The interrogation operation(energization of and then reading of signals emitted by the tags)performed by the controller 412 and antenna array 261 will be discussedin further detail below.

[0070] The processor 400 reads and writes data to a memory 414. Theprocessor 400 also controls a display 416, which is used to communicatewith users of the freezer 230. The display 416 may be a simple lightedlogo display which when lit indicates authorization of access to thefreezer 230 and when unlit or lit in another color indicates denial ofaccess to the freezer 230. A proximity sensor, e.g., the sensor 420, maybe positioned on the door 236 or around the opening 234 to provideinformation to the processor 400 regarding whether the door 236 isopened or closed or the area comprising the MW has been accessed.Information relevant to operation of the freezer 230 and protection ofthe products therein, such as temperature, power status, and the like(sometimes referred to as “operational status,” “heartbeat,” or “health”information), is received over one or more input lines represented bycommunication link 422 from temperature, power, and positioning sensors,which are represented by the box 424. Communication between theprocessor 400 and the servers 26 and 27 (or server cluster 112) may beaccomplished using a variety of technologies and hardware. FIG. 10illustrates a wireless system 425 that is connected to an access port430 via a communication link 432. 802.11b wireless links, available frommany vendors, are suitable for use in the invention. In one preferredembodiment, wireless links from Aerocomm are used. The access port 430may take the form of a modem or network interface device which may, inturn, be connected to an appropriate and compatible communication linksuch as a landline 434, wireless network 436, local area network 438, orthe like. The access port 430 ultimately connects to a communicationlink or network (such as the network 28) that is linked to the servercluster 112.

[0071]FIG. 11 illustrates one implementation of the processor 400 shownin FIG. 10. The implementation includes an example of the processor 400in the form of a M16C/80 chip from Mitsubishi. As would be apparent tothose of ordinary skill in the art, a variety of other chips could beused. The processor 400 receives a clock signal from an oscillator 600,power from a supply circuit 601, and time signals from the real-timeclock 402. Software instructions used by the processor 400 are stored ona non-volatile memory (such as EEPROM) 602. The memory 602 may beimplemented using a 512 kB Flash memory integrated circuit 603 and a 512kB SRAM integrated circuit 604.

[0072] Operational status (“health”) and related information of therelevant MW is received from a MW temperature sensor 605 and an ambienttemperature sensor 606. A battery monitor 608 monitors power supplied tothe processor 400. A current switch 609 is used to monitor the on/offduty cycle of the current supplied to the refrigeration compressor (notshown) in the freezer 230. Information from the switch 609 as well asinformation from the internal and ambient temperature sensors 605 and606 can be used to determine the relative health of the compressor.

[0073] The processor 400 is connected to a power failure/lockdowncircuit 610. The power failure lockdown circuit 610 is coupled to thesupply circuit 601 and works in conjunction with an alarm circuit 612.If power is cut off to the processor 400, the power failure lockdowncircuit 610 causes the alarm circuit 612 to generate an audio signal inorder to alert users to the power failure condition. In addition, thelockdown/powerfail circuit locks the lock 613 (FIG. 10) on the freezer230 in order to prevent additional access to the freezer. This actionprotects against inventory theft and assists in maintaining the internaltemperature of the freezer (which is important to protecting productstherein) by maintaining the integrity of the insulated volume of airwithin the freezer.

[0074] In the embodiment shown in FIG. 11, two mechanical switches, adoor switch or sensor 614 and a key switch 615, are used. The sensor 614is equivalent to the sensor 420 and provides and indication of whetherthe door 236 is open or closed (or whether ingress or egress to acontrolled or restricted access area has occurred as detected by someother sensor). The key switch 615 provides a mechanical mechanism forrebooting the processor 400 (a “hard” reboot). In addition, when turnedto an off or disarm position (not shown) the key switch 615 provides aninput to the processor 400 that causes the processor 400 to shut off.With the processor 400 shut off, the freezer 230 may be operated, ifdesired, as a normal freezer without any access restriction or inventorymonitoring. As should be apparent, it is preferred that distribution ofthe key or keys compatible with the key switch 615 be limited to serviceor other authorized personnel.

[0075] The processor 400 sends control signals to an electromagneticlock (if used) on line 617, which is coupled to an electromagneticactuator 619 in the lock 613. Information regarding the stability of thefreezer 230 is provided by an accelerometer 621. The accelerometer 621can detect vibration or other motion caused by a variety of situationssuch as improper positioning of the freezer 230 or an attempt to tamperor otherwise obtain access to the freezer 230 by breaking the door 236or lock 613 (if used).

[0076] The processor 400 may control an output light such as a logolight 624, which may be used to display the brand name of themanufacturer of the products placed within the applicable MW 36. Theprocessor 400 may also provide output indicative of granting or denyingaccess to the freezer 230 to a user through green LED 626 and red LED628. Audio output, such as processor failure or similar statusinformation, is delivered to an audio circuit 630. The processor 400also receives inputs from an implementation of a badge or key reader inthe form of reader 636. A reader suitable for use in the invention is aVisonics Key Reader, available from Visonics Inc.

[0077] Communication between the processor 400 and other devices suchthe server cluster 112 may be accomplished using a dual universalasynchronous receive transmit (“UART”) integrated circuit 638. Forexample, the circuit 638 may communicate with the wireless system 425.The circuit 638 may also communicate with a GPS system (not shown)through an interface circuit 640. Communication between the processor400 and the controller 412 occurs through two lines 642 and 644. Thecontroller 400 may also communicate to a maintenance computer through aconnector interface circuit 650.

[0078]FIG. 12 illustrates a simplified field model of theelectromagnetic field within the freezer 230. Each antenna in the array261 has a line of sight or bore sight represented by a straight lineemanating from the respective antenna 262-267. Electromagnetic waveshaving a frequency of about 2.45 GHz travel outward from each antenna262-267 into the space defined by the walls of the freezer 230 (i.e.,the RF cavity). The energy of the waves diminishes. The model shownincludes two lines indicating where energy of the waves is at about −10dB and at about −20 dB level.

[0079]FIG. 13 illustrates an exemplary packaged item in the form ofproduct 270 that may be stored in the freezer 230. In the embodimentshown, the product 270 includes one or more vials 702 containing abiological assay. The product 270 also includes packaging that includesa pouch 704 and a periphery 706. The vials 702 are positioned within thepouch 704. Each product 270 also includes one tag 272, preferably apassive RF tag. FIG. 13 illustrates multiple possible locations for thetag 272 on the periphery 706 (shown in phantom) and the pouch 704. Thetag 272 may be a folded-dipole, read-only tag, but other tags havingother antenna geometries, such as bow-tie, may be suitable in someembodiments. Read-only tags suitable for use in at least some of theembodiments discussed and illustrated are available from SCSCorporation. As noted, in at least one embodiment, it is preferred thateach product 270 be placed in one of the drawers 242 so that it isgenerally orthogonal to the transmission line of sight of those antennas262-267 that are adjacent to the subject drawer 242. It is alsopreferable that the tag 272 be positioned on a portion of the packagingsuch that it will not be bent when placed within one of the drawers 242.Placement of the tag 272 on the pouch 704 provides a location that isless subject to bending than positions on the periphery 706.Alternatively, a rigid tag substrate or a rigid cover label may be usedto prevent bending.

[0080] Having described much of the mechanical and hardware aspects ofembodiments of the invention, additional details of the software will befurther described. As noted above, in general, the controller 256activates the antenna array 261. The antennas 262-267 emit signals thatenergize the tags 272 on the products within the freezer 230. Each tag272 emits an identifying signal. The identifying signals from the tags272 are received by the antennas 262-267 and delivered to the controller256.

[0081] As may be apparent, the energization of multiple tags in arelatively small, defined volume (e.g., the RF cavity defined by theinterior walls of the freezer 230) causes the tags 272 to simultaneouslyor nearly simultaneously emit identifying signals. The signals interferewith each other such that identifying any individual signal from any onespecific tag 272 is difficult, and in some cases nearly impossible. Inorder to read numerous tags 272, a “cloaking” system can be used. Ingeneral, cloaking refers to shutting down or otherwise disablingtransmission of the tag once it has been energized and identified by aninterrogator (for example, controller 256). While cloaking is generallyknown, the inventors developed the specific use of the cloakingtechniques described herein, including the specifications for minimumand maximum cloak time, and the cloak time distribution, with respect toRF cavity temperature.

[0082] The controller 256 executes inventory control software. In theembodiment described, the software carries out six basic steps. First,the controller 256 is initialized. Second, a baseline scan is performed.Third, access to the freezer 230 or relevant micro-warehouse iscontrolled based upon sensing the presence of and determining thevalidity of a user passkey using the badge or key reader 258 or similardevice. Fourth, the operational status or health of the micro-warehouseis checked. Fifth, the inventory level of products is checked after auser has accessed the micro-warehouse (as sensed, for example, byclosing of the freezer door 236). Lastly, information gathered by thecontroller 256 is communicated to the server cluster 112.

[0083] A more specific definition of the procedures performed by theinventory control software is set out in Table 1. TABLE 1 Scan A singlerequest for a list of inventory identifiers (“Inventory IDs”) (i.e.,identifying codes stored in the tags) with no duplicates. The scancontinues until: (a) a specified time limit has been reached, (b) aspecified rate of IDs per second is exceeded, or (c) a specified limitof interval time between tag reads has been reached. There are two modesof execution, 1. cloaked, and 2. uncloaked. Run A series of one or moreScans continued either until (a) a specified number of Scans has beenreached, (b) a specified time limit has been reached, (c) a specifiedintegrity level has been reached, or (d) an event (such as an RF powerfailure) has occurred which terminates a scan, Each of (a)-(d) is a modeof execution, and one or more modes can be requested. A run isterminated on the first occurrence of a mode. Each Scan is separated bya specified time interval. Inventory ID A 6-byte, binary hexadecimalstring, unique to 2⁴⁴ values. The Inventory ID identifies a taggedproduct in a micro-warehouse. Integrity Level A percentage expressed as“0.90.” Inventory List A single list of all Inventory IDs present in amicro- warehouse ReadTime The amount of time elapsed from the start of aScan to the last tag being read. This time may also be a set andincludes the time elapsed to the reading of each of any number of tags.ReadTemp The temperature of any one tag as reported by the tag during aScan (assumes that system is implemented using tags that are capable ofreporting their temperature). ScanTime Time limit for one ScanScanInterval Time between tag ReadTimes in one Scan NumScans Number ofScans to perform in a Run ScanWaitTime Time to wait between Scans forde-cloaking ReadRate Rate of tags read per second during one Scan

[0084] As noted in Table 1, the read time (or for the specificembodiment discussed, “ReadTime”) of a scan is the elapsed time from thestart of a scan to the reading of any or all of the tags in the fieldgenerated by the antennas. The read time can be collected in either thenon-cloaked or cloaked mode. The read time (which can also be a set ofread times) can be sent to the server cluster 112 as part of eachtransaction that results from a scan. The read time can be used as acomposite indicator of several operating parameters, such astemperature, product tag position in the RF cavity, RF interference inthe cavity, etc. For instance, a gradual lengthening of the read time(s)for all tags in a RF cavity can correspond to an increase in interiortemperature. It is possible to quantify a temperature change from theshift in a tag versus read time curve (such as the curve 725 shown inFIG. 21). As another instance, the shape of the curve of tag versus readtime for the last few tags that were read can be used as an indicator ofan RF anomaly in the RF cavity that is preventing the tags from gettingenough power to respond. In this case, the normally linear curve becomesexponential for the last few tags. Operating parameters read from othersensors in the RF cavity, such as the temperature sensor, can be usedwith the read time curve to predict the condition that resulted in thechange in the read time curve.

[0085] In one embodiment, the inventory control software includes threeclasses of runs: a base line run, an inventory run; and a backgroundrun. Definitions for Methods corresponding to these runs are set out inTable 2. TABLE 2 Method Function Baseline Run A run in cloaked oruncloaked Output: IntegLvl, ReadTime, ReadTemp) mode to establish thestarting Input: (NumScans, RunTime, IntegLvl, inventory list.ScanInterval, ScanWaitTime, ScanTime, ReadRate) Inventory Run A run orruns in uncloaked (or Output: (PlusInventoryList, cloaked) mode todetermine a MinusInventoryList, IntegLvl, new inventory list. UsesReadTime, ReadTemp) master inventory list Input: (NumScans, RunTime,IntegLvl, established at baseline, and ScanInterval, ScanWaitTime,ScanTime, returns the change in ReadRate) inventory between the masterinventory list and the new inventory list as plus delta inventory andminus delta inventory. Background Run A continuous series of scansOutput: (PlusInventoryList, in cloaked or uncloaked modeMinusInventoryList, IntegLvl, until a termination event ReadTime,ReadTemp) occurs, such as a user Input: (NumScans, RunTime, IntegLvl,presenting a badge or key ScanInterval, ScanWaitTime, ScanTime, torequest entry. ReadRate) Reveal Inventory Output: (MasterInventoryList)

[0086] Classes of Runs

[0087] Baseline Run

[0088] A run in cloaked mode to establish the starting inventory list.

[0089] If IntegrityLevel is not specified, the actual read integritylevel is returned, that is, the number of times the majority scan listoccurs. Creates the first master inventory list, consisting of thesuperset of all inventory IDs read throughout the baseline scans. Theread integrity is returned even when an input integrity level has beenset.

[0090] Inventory Run

[0091] A run or runs in uncloaked (or cloaked) mode to determine changesto the inventory list. Uses the superset of all inventory run scans asthe new list of inventory. Uses master inventory list (from baselineand/or background) or most recent temporary master inventory list,whichever is more recent, and returns change in inventory between masterinventory list and new inventory list, as plus delta inventory and minusdelta inventory. Creates new temporary master inventory list.

[0092] Background Run

[0093] A continuous series of scans in cloaked mode until a terminationevent occurs. Uses a superset of all scans as the inventory list.Creates new master inventory list.

[0094] Reveal Inventory

[0095] No scans. Returns most recent master inventory list.

[0096] One useful feature of the embodiments described herein is thatthe manner in which the controller 256 controls the antenna array 261may be adjusted. The adjustment may be accomplished by modifying certainsoftware parameters, including those noted in Tables 1 and 2 (such asintegrity level, read time, run time, wait time, scan interval, etc.) ascircumstances change (for example, changes in temperature, tag type, RFcavity, etc.). As explained in additional detail below, these changescan be performed remotely by sending the changed parameters to thecontroller 256 from the server cluster 112.

[0097] An overview of the operations performed by the inventory controlsoftware is set out in FIG. 14. At step 750, the controller 256 is resetvia a hard reset by, for example, turning the key switch 615 to an armposition (not shown). At step 752, the controller checks the servercluster 112 to see if a new version of the controller software isavailable. If a new version is available, that version is downloaded andloaded into the memory 602 and a soft reset is performed, as shown atstep 754. Once any necessary software updates have been performed, thecontroller 256 loads required parameters, reloads saved transactions,and reloads any master inventory information, if it exists, as shown atstep 756. At step 758, the controller 256 checks its status. At step760, the controller 256 determines whether a lockdown condition exists.If a lockdown condition exists, the controller sets a flag or similardevice to indicate the presence of a lockdown condition (as shown atstep 762) and continues to check for the presence of a lockdowncondition (as shown by loop 764).

[0098] Once it is determined that a lockdown condition does not exist,the controller 256 performs a baseline run, queues (or places in abuffer) the inventory master value, and sets the lockdown flag to “off,”as shown at step 766. The controller 256 then executes a control idleloop (step 768) or, more broadly, a main processing loop. In theembodiment illustrated, the control idle loop includes five basicoperations: a check diagnostic command operation (step 770), a poll userpass operation (step 772), a poll status operation (step 774), an updatesaved status operation (step 776), and a check alarm conditionsoperation (step 778). These steps are discussed in greater detail below.In summary, during these operations, the controller 256 determineswhether the user has an authorized key and whether any alarm or otherconditions are present. If any of the alarm or status conditions meetthe requirements of a lockdown situation (as determined at step 780),the lockdown flag is set to “on” (step 782), information obtained aboutthe inventory in and status of the MW 36 is sent to the server cluster112 (step 784, background communication) and the control idle loop isexecuted again (as shown by loop 786).

[0099] If a lockdown condition does not exist, the controller 256determines whether a user has accessed the MW (step 788) as determined,for example, by the controller 256 sensing an opening and closing of thedoor 236. If a user has accessed the MW, an inventory run is requestedand the information from the run is queued in a transaction buffer, asshown in block 792. The information gathered from the inventory run isthen sent to the server cluster 112 (as shown at step 784). Thecontroller 256 continues to execute the software until reset.

[0100]FIGS. 15 through 21 provide additional information regarding theoperations (or routines) discussed above with respect to FIG. 14.

[0101] As shown in FIG. 15, when the controller 256 executes the controlidle loop, it determines whether any diagnostic commands need to beprocessed (step 793). If commands are unprocessed, the controller 256processes those commands (step 794) and then returns to the control idleloop (step 768).

[0102] As shown in FIG. 16, after processing any diagnostic commands,the controller 256 checks the validity of any key or pass presented by auser. If the key is invalid, appropriate feedback is provided by, forexample, lighting the red LED 628 (step 796). The controller thenreturns to the control idle loop. If the key is valid, the controllerchecks for the existence of a lockdown condition (step 798). If alockdown condition exists, the controller denies access to the MW andreturns to the control idle loop. If a lockdown condition does notexist, access is permitted and appropriate feedback provided by, forexample, lighting the green LED 626 (step 799).

[0103]FIG. 17 illustrates the operations performed during a poll statusoperation (step 774). The controller 256 retrieves information from thevarious sensors (temperature, power, etc.) and returns to the controlidle loop (step 768). As shown in FIG. 18, updating saved statusinformation involves assigning the information retrieved during polling(step 774) to variables or registers holding prior status information.

[0104] As shown in FIG. 19, checking alarm conditions (step 778)involves comparing or otherwise evaluating the status information andother information, for example, shelf life, to predetermined thresholds(step 800). In the event any information exceeds or fails to meet thepredetermined thresholds, as the case may be, an alarm transaction isqueued (step 802). Then control is returned to the control idle loop(step 768).

[0105]FIG. 20 illustrates the functions performed by controller 256 whenit executes RF inventory operations. As shown at steps 804-806, thecontroller 256 first determines whether the scanning operation to beperformed is a baseline run or scan, an inventory run, or a backgroundrun. The type of run to be performed is passed from the control idleloop to the RF inventory module. Depending on the type of run requested,the appropriate parameters are loaded, as shown at steps 807-810. Oncethe parameters are loaded, an appropriate scan is performed, as shown atstep 812. If the results of the scan are higher than a predeterminedintegrity level, a union set based on the results is formed as shown atsteps 814 and 816. If the results do not meet the predeterminedintegrity level, additional scans are performed until the integritylevel is met or exceeded, as shown by loop 818. If the type of run orscan performed was an inventory run (step 819), changes between theinventory run and previously stored information (in the example shown,the inventory master) are determined, as shown at step 820. Control isthen returned to the control idle loop, as shown at step 822.

[0106] The number of scans to be used in any run is variable and is setto ensure a predetermined integrity, which, in the ideal case, is 100%integrity of recorded inventory. In one embodiment of the invention, aplurality of scans is performed such that the specified integrity levelis achieved based on experimental data. A superset or union of all thescan sets is then formed. For example, in order to achieve an integritylevel of 50%, the number of identical scans must be the majority set. Inone embodiment, experiments have shown that the number of scans, innon-cloaked mode, should be about ten and in cloaked mode, about three.Additionally, an order (a product removal or purchase transaction),based on inventory recorded before door opening and after door closure,can be aged or buffered, that is, held for processing, either in thecontroller or at the server, for some time until further transactionsare recorded. If the additional scans from these further transactionsreveal a product recorded as taken in the previous transaction, theerroneous transaction can be corrected before billing a customer. Whileit is possible for the system to miss a tagged item during a scan,testing of embodiments of the invention has not resulted in a situationwhere a scan indicated the presence of items not physically present inthe relevant MW. In any case, anomalies in recorded inventory that arepicked up in later scans can be used to correct the billing information.In actual use, it is believed, and limited tests have shown, that thistype of correction will be seldomly required. Further, the baseline runand the background run are not necessary in all applications, and can beselected to be used on any particular MW at the time of manufacture,field installation, or service interval.

[0107] The tags 272 may be equipped with the ability to report theirtemperature during a scan. A function of the temperature informationobtained from the tags 272 can be used to adjust the scan and scan waittimes (defined in Table 1 as Scan and Scan Wait) to adjust for cloaktime changes due to temperature in order to ensure inventory integrityduring any run. All of the instances mentioned in the above paragraphrefer to read time in cloaked mode.

[0108] Once the controller 256 has scanned the tagged products in the MW36 or freezer 230, a message containing information regarding the scanis sent to the server cluster 112. As shown in FIG. 22, in theparticular embodiment shown, the message takes the form of a backgroundcommunication (step 784). The controller 256 checks, at step 850,whether a communication session or transaction between the controller256 and the cluster 112 has already been started. If a transaction orcommunication has not been started, the controller 256 checks to seewhether there is any information to send to the cluster 112, at step852. If there is information to send, the controller 256 creates aconnection to the server cluster 112, as shown at step 854.

[0109] If no transactions are being processed or queued, the controller256 determines whether it should synchronize the real-time clock 402with a standard time reference (step 855). For example, if a certainamount of time has passed since the last synchronization has occurred,the real time clock 402 is synchronized again to compensate for anyvariations that might have occurred since the last synchronization. Ifno synchronization is needed, the background communication module isexited and control is returned to the control idle loop. Ifsynchronization is required, the clock is updated (as shown at steps 856and 857).

[0110] If a transaction has been started or a transaction is queued, thecontroller 256 processes the next transaction or message to becommunicated to the cluster 112 (as shown at step 860). Processing ofthe next transaction includes sending inventory, status, alarm,heartbeat, and passkey information to the server cluster 112. Once thesetransactions have been processed, the controller 256 processes inputtransactions for transmission to the server cluster 112 (step 862).Information such as updated passkey information, updated parameters,resets, lockdown information, software updates, status requests, andpasskey lists are sent to the server cluster 112.

[0111]FIGS. 23 and 24 illustrate operations performed by the controller256 upon the occurrence of key switch and interrupt events. As notedabove, a transition of the key switch 615 from an arm position to adisarm position causes the controller to reboot or reset itself (asshown in steps 875 and 877 in FIG. 23). If a transition from the armposition to the disarm position occurs, the controller 256 initiates ashutdown sequence and saves information in the transaction queue (asshown at steps 879 and 881).

[0112] Various events cause the controller 256 to perform certainfunctions. For the embodiment described, the condition of a powerfailure causes a power fail transaction to be queued (steps 890 and 892in FIG. 24). The need to input or output information on a serial portcauses the controller to place the input information in an I/O buffer(steps 894 and 896). Operational status (or health or heartbeat) checksare carried out at predefined times. If the time for a status check hasoccurred, a status check is performed and the information obtainedduring the check is queued for transmission to the server cluster 112(steps 900 and 902). If the door switch or sensor is toggled, the timeof day and temperature of the MW 36 are recorded (steps 904 and 906). Ifthe current sensor senses a toggling of the AC current, the toggle isrecorded (steps 908 and 910). Finally, if the controller must provideuser feedback (such as providing and indication of the validity of apasskey), the user feedback is provided and appropriate feedback flagsare toggled (steps 912 and 914).

[0113] As can be seen from the above, the present invention provides anRF inventory and distribution system with features to diminish theeffects of energy sharing, nulls, shadowing, and other effects thatdegrade integrity in recording inventory changes.

[0114] Various features and advantages of the invention are set forth inthe following claims.

1-73. (Cancelled)
 74. An apparatus comprising: a detecting device thatis configured to detect, using RFID, removal from an area of an objecthaving a RFID tag, wherein an XML message is generated in response todetection by said detecting device of removal of the object from thearea, and wherein a determination regarding restocking of the object ismade in response to the XML message.
 75. An apparatus according to claim74, wherein another apparatus makes the determination regardingrestocking of the object.
 76. An apparatus according to claim 75,wherein the XML message is sent from said apparatus to the anotherapparatus via a wireless connection.
 77. An apparatus according to claim75, wherein the XML message is sent from said apparatus to the anotherapparatus via a network.
 78. An apparatus according to claim 74, whereinsaid apparatus is a vending machine.
 79. An apparatus according to claim74, further comprising: a smartcard reader that is configured to read asmartcard containing a preloaded monetary equivalent; and a debitingunit that is configured to debit the preloaded monetary equivalent inaccordance with the detection by said detecting device of the object.80. An apparatus according to claim 79, wherein said apparatus is avending machine.
 81. An apparatus comprising: detecting means fordetecting, using RFID, removal from an area of an object having a RFIDtag, wherein an XML message is generated in response to detection bysaid detecting means of removal of the object from the area, and whereina determination regarding restocking of the object is made in responseto the XML message.
 82. An apparatus according to claim 81, whereinanother apparatus makes the determination regarding restocking of theobject.
 83. An apparatus according to claim 82, wherein the XML messageis sent from said apparatus to the another apparatus via a wirelessconnection.
 84. An apparatus according to claim 82, wherein the XMLmessage is sent from said apparatus to the another apparatus via anetwork.
 85. An apparatus according to claim 81, wherein said apparatusis a vending machine.
 86. An apparatus according to claim 81, furthercomprising: smartcard reading means for reading a smartcard containing apreloaded monetary equivalent; and debiting means for debiting thepreloaded monetary equivalent in accordance with the detection by saiddetecting means of the object.
 87. An apparatus according to claim 86,wherein said apparatus is a vending machine.
 88. A method comprising:detecting, using RFID, removal from an area of an object having a RFIDtag; generating an XML message in response to the detection by saiddetecting step of removal of the object from the area; and determiningwhether to restock the object in response to the XML message.
 89. Amethod according to claim 88, further comprising the steps of: debitinga preloaded monetary equivalent on a smartcard in accordance with thedetection by said detecting step of the object.
 90. An apparatusaccording to claim 74, wherein said detecting device further detects,using RFID, placement into the area of an object having a RFID tag. 91.An apparatus according to claim 74, wherein the area is selected fromthe group consisting of a refrigerator, a freezer, a container, a room,a cabinet, and an apparatus.
 92. An apparatus comprising: a detectingdevice that is configured to detect, using RFID, removal from an area ofa RFID tag, wherein a markup language message is generated in responseto detection by said detecting device of removal of the RFID tag fromthe area, and wherein a determination regarding restocking of an objectcorresponding to the RFID tag is made in response to the markup languagemessage.
 93. An apparatus comprising: detecting means for detecting,using RFID, removal from an area of a RFID tag, wherein a markuplanguage message is generated in response to detection by said detectingmeans of removal of the RFID tag from the area, and wherein adetermination regarding restocking of an object corresponding to theRFID tag is made in response to the markup language message.
 94. Amethod comprising: detecting, using RFID, removal from an area of a RFIDtag; generating a markup language message in response to the detectionby said detecting step of removal of the RFID tag from the area; anddetermining whether to restock an object corresponding to the RFID tagin response to the markup language message.